Presto একটি ডিস্ট্রিবিউটেড SQL কোয়েরি ইঞ্জিন, যা বিভিন্ন ডেটা সোর্স থেকে ডেটা একত্রে বিশ্লেষণ করতে সক্ষম। Hive Integration দ্বারা আপনি Hive ডেটাবেসে সংরক্ষিত ডেটার উপর SQL কোয়েরি চালাতে পারেন। Presto এবং Hive এর একত্রে কাজ করার ফলে, আপনি Hive-এ সংরক্ষিত ডেটা দ্রুত এবং কার্যকরভাবে প্রসেস করতে পারবেন, কারণ Presto এর মধ্যে ডিস্ট্রিবিউটেড প্রসেসিং এবং ইন্টারেক্টিভ কোয়েরি এক্সিকিউশনের ক্ষমতা রয়েছে।
এখানে আমরা দেখবো কীভাবে Presto তে Hive এর সাথে সংযোগ স্থাপন করা যায় এবং ডেটা বিশ্লেষণের জন্য কীভাবে কোয়েরি চালানো যায়।
ধাপ ১: Hive এর সাথে Presto-র সংযোগ কনফিগারেশন
Hive Connector কনফিগারেশন ফাইল তৈরি করা
Presto তে Hive সংযোগ করতে Hive Connector ব্যবহার করতে হবে। এটি /etc/presto/catalog/ ডিরেক্টরিতে একটি .properties ফাইল তৈরি করে কনফিগার করতে হবে।
- ফাইল নাম:
hive.properties
connector.name=hive
hive.metastore.uri=thrift://<hive-metastore-host>:9083
hive.config.resources=/etc/hadoop/core-site.xml,/etc/hadoop/hdfs-site.xml
hive.s3.aws-access-key=<your-access-key>
hive.s3.aws-secret-key=<your-secret-key>
- connector.name=hive: এটি Hive কনফিগারেশন এর মাধ্যমে Presto-কে Hive Connector ব্যবহার করতে বলে।
- hive.metastore.uri: Hive মেটাস্টোরের URI। এটি Hive মেটাস্টোর সার্ভারের URI এবং পোর্ট হতে হবে (যেমন,
thrift://<hive-metastore-host>:9083)। - hive.config.resources: Hive কনফিগারেশন ফাইলের জন্য পথ যেমন
core-site.xmlএবংhdfs-site.xml। - hive.s3.aws-access-key এবং hive.s3.aws-secret-key: যদি আপনি Hive এর সাথে Amazon S3 ব্যবহার করেন, তাহলে AWS অ্যাক্সেস কী এবং সিক্রেট কী প্রদান করতে হবে।
ধাপ ২: Hive মেটাস্টোর এবং HDFS কনফিগারেশন
Presto Hive এর সাথে কাজ করার জন্য, Hive মেটাস্টোর এবং HDFS এর সাথে কনফিগারেশন করা প্রয়োজন। Hive মেটাস্টোর সাধারণত Thrift সার্ভিসের মাধ্যমে কাজ করে, যা Hive ডেটাবেস ম্যানেজমেন্টের জন্য ব্যবহৃত হয়।
Hive মেটাস্টোর সার্ভিস চালু করা:
Hive মেটাস্টোর সার্ভিস চালু করতে নিম্নলিখিত কমান্ড ব্যবহার করুন:
hive --service metastoreHDFS কনফিগারেশন ফাইল আপডেট:
HDFS থেকে ডেটা এক্সেস করার জন্য Presto-তে
core-site.xmlএবংhdfs-site.xmlকনফিগারেশন ফাইল গুলি সঠিকভাবে কনফিগার করা থাকতে হবে।এই ফাইলগুলি
/etc/prestoডিরেক্টরিতে রাখুন এবং Presto কনফিগারেশন ফাইলের সাথে সেগুলি রেফার করুন।
ধাপ ৩: Presto সার্ভার রিস্টার্ট করা
নতুন কনফিগারেশন ফাইল তৈরি করার পর, Presto সার্ভার রিস্টার্ট করতে হবে।
cd /opt/presto
bin/launcher restart
এটি সমস্ত পরিবর্তন লোড করবে এবং Presto সার্ভারকে নতুন Hive কনফিগারেশন অনুযায়ী পুনরায় চালু করবে।
ধাপ ৪: Hive ডেটাবেসে কোয়েরি চালানো
Hive এর সাথে সফলভাবে সংযোগ স্থাপন করার পরে, আপনি Presto CLI বা Web UI ব্যবহার করে Hive ডেটাবেসে কোয়েরি চালাতে পারবেন। উদাহরণস্বরূপ:
CLI কোয়েরি উদাহরণ:
presto --server <presto-server>:8080 --catalog hive --schema default
এখানে, --catalog hive নির্দেশ করে যে আপনি Hive ডেটাবেস থেকে ডেটা এক্সেস করতে চান, এবং --schema default Hive-এর ডিফল্ট স্কিমা নির্দেশ করে।
SQL কোয়েরি উদাহরণ:
SELECT * FROM hive.default.orders WHERE order_status = 'shipped';
এই কোয়েরিটি Hive ডেটাবেসের orders টেবিল থেকে order_status ফিল্টার করে ডেটা ফেরত আনবে।
ধাপ ৫: Hive এর সাথে Presto এর পারফরম্যান্স অপ্টিমাইজেশন
- Partitioning and Bucketing:
Hive ডেটাবেসে পার্টিশনিং এবং বাকেটিং ব্যবহার করলে ডেটা প্রসেসিংয়ের গতি বৃদ্ধি পায়। Presto Hive এর এই পার্টিশন এবং বাকেটিং ব্যবস্থাকে সমর্থন করে। - Query Caching:
Presto তে কোয়েরি ক্যাশিং ব্যবহার করা যেতে পারে যাতে একই কোয়েরি বারবার না চালাতে হয় এবং পারফরম্যান্স বাড়ানো যায়। - Parallel Query Execution:
Presto বিভিন্ন Worker Node ব্যবহার করে কোয়েরি এক্সিকিউশনকে প্যারালাল প্রসেসিংয়ের মাধ্যমে আরও দ্রুত করে।
সারাংশ
Presto-র মাধ্যমে Hive ডেটাবেসে সংযোগ স্থাপন করে, আপনি Hive ডেটাসেটের উপর SQL কোয়েরি চালাতে পারবেন এবং ডিস্ট্রিবিউটেড প্রসেসিংয়ের মাধ্যমে দ্রুত ডেটা বিশ্লেষণ করতে পারবেন। Hive মেটাস্টোর, HDFS, এবং S3 এর সঠিক কনফিগারেশন এবং Presto Hive Connector ব্যবহার করে সহজেই এই সংযোগ তৈরি করা সম্ভব। একবার সংযুক্ত হলে, Presto এর সাথে Hive ডেটাবেসে কাজ করা অত্যন্ত দ্রুত এবং কার্যকরী হয়, যা বড় ডেটাসেট বিশ্লেষণে সাহায্য করে।
Read more